#pragma once


#include "loadlibfun.h"

//extern "C" DHYBYDEV_API int __stdcall DHYBYDev_Ver();
//extern "C" DHYBYDEV_API int __stdcall DHYBYDev_Init();
//extern "C" DHYBYDEV_API int __stdcall DHYBYDev_Init2();
//extern "C" DHYBYDEV_API int __stdcall DHYBYDev_Run(bool bTrue);
//extern "C" DHYBYDEV_API int __stdcall DHYBYDev_Setting();
//extern "C" DHYBYDEV_API bool __stdcall DHYBYDev_GetData(float* pData,int& nCnt,bool bWait);
//extern "C" DHYBYDEV_API bool __stdcall DHYBYDev_Close();

class IDHYBYDevApi
{
	DLL_LOADER_HANDLE_DECL(IDHYBYDevApi);
	//bool LoadTheDll(LPCTSTR pszTheDll)

	//extern "C" DHYBYDEV_API int __stdcall DHYBYDev_Ver();
	DLL_LOADER_ENTRY_R_A0(int, __stdcall, DHYBYDev_Ver, 0);

	//extern "C" DHYBYDEV_API int __stdcall DHYBYDev_Init();
	DLL_LOADER_ENTRY_R_A0(int, __stdcall, DHYBYDev_Init, 0);

	//extern "C" DHYBYDEV_API int __stdcall DHYBYDev_Init2();
	DLL_LOADER_ENTRY_R_A0(int, __stdcall, DHYBYDev_Init2, 0);

	//extern "C" DHYBYDEV_API int __stdcall DHYBYDev_Run(bool bTrue);
	DLL_LOADER_ENTRY_R_A1(int, __stdcall, DHYBYDev_Run, 0,bool,bTrue);

	//extern "C" DHYBYDEV_API int __stdcall DHYBYDev_Setting();
	DLL_LOADER_ENTRY_R_A0(int, __stdcall, DHYBYDev_Setting, 0);

	//extern "C" DHYBYDEV_API bool __stdcall DHYBYDev_GetData(float* pData,int& nCnt,bool bWait);
	//3820
//	typedef float fDD[128][1024];
//	DLL_LOADER_ENTRY_R_A3(bool, __stdcall, DHYBYDev_GetData, 0,fDD, pData,int&, nCnt,bool, bWait);

	DLL_LOADER_ENTRY_R_A3(bool, __stdcall, DHYBYDev_GetData, 0,float*, pData,int&, nCnt,bool, bWait);
	//extern "C" DHYBYDEV_API bool __stdcall DHYBYDev_Close();
	DLL_LOADER_ENTRY_R_A0(bool, __stdcall, DHYBYDev_Close, 0);

};

#define g_oDHYBYDev IDHYBYDevApi::Inst()